/**
 *
 */
package com.lenovo.locationmanager;


import android.text.TextUtils;


import java.text.SimpleDateFormat;
import java.util.Locale;

/**
 * 辅助工具类
 * @创建时间： 2015年11月24日 上午11:46:50
 * @项目名称： AMapLocationDemo2.x
 * @author hongming.wang
 * @文件名称: Utils.java
 * @类型名称: Utils
 */
public class Utils {
    /**
     *  开始定位
     */
    public final static int MSG_LOCATION_START = 0;
    /**
     * 定位完成
     */
    public final static int MSG_LOCATION_FINISH = 1;
    /**
     * 停止定位
     */
    public final static int MSG_LOCATION_STOP= 2;

    private static SimpleDateFormat sdf = null;
    public  static String formatUTC(long l, String strPattern) {
        if (TextUtils.isEmpty(strPattern)) {
            strPattern = "yyyy-MM-dd HH:mm:ss";
        }
        if (sdf == null) {
            try {
                sdf = new SimpleDateFormat(strPattern, Locale.CHINA);
            } catch (Throwable e) {
            }
        } else {
            sdf.applyPattern(strPattern);
        }
        return sdf == null ? "NULL" : sdf.format(l);
    }

    /**
     * 获取两个经纬度之间的距离
     * @param lat1
     * @param lng1
     * @param lat2
     * @param lng2
     * @return
     */
    public static double getDistance(double lng1, double lat1, double lng2, double lat2) {
        double radLat1 = toRad(lat1);
        double radLat2 = toRad(lat2);
        return 6378137.0d * (2.0d * Math.asin(Math.sqrt(Math.pow(Math.sin((radLat1 - radLat2) / 2.0d), 2.0d) + ((Math.cos(radLat1) * Math.cos(radLat2)) * Math.pow(Math.sin((toRad(lng1) - toRad(lng2)) / 2.0d), 2.0d)))));
    }

    public static double toRad(double d) {
        return (Math.PI * d) / 180.0d;
    }

    /**
     * 获取卫星Flags
     * @param satellite
     * @return
     */
    public static String getSatelliteFlags(GpsSatellite satellite){
        StringBuilder builder=new StringBuilder();
        if (satellite.ismHasAlmanac()) {
            builder.append("A");
        }
        if (satellite.ismHasEphemeris()) {
            builder.append("E");
        }
        if (satellite.ismUsedInFix()) {
            builder.append("U");
        }
        return builder.toString();
    }
}
